<?php
/**
 * 熵巡 - 企业级氚云OpenAPI数据管理平台
 * 开发归属 Alyr.net
 * API接口文档内容页 - 接口说明、代码示例、使用指南
 * 尊重劳动成果是一种美德
 */

// 使用占位符域名（公开文档脱敏处理）
$domain = 'https://your-domain.com';
?>
<!-- API接口文档内容页面 -->
<div class="api-docs-panel">
    
    <h2 class="api-docs-title">
        API 接口文档
    </h2>
    
    <section class="api-section">
        <h3 class="api-section-title">快速开始</h3>
        <p class="api-text">
            本系统提供标准的 RESTful API 接口，基于氚云 OpenAPI 实现企业级数据管理。<br>
            支持通过令牌认证获取表单数据，所有接口返回标准 JSON 格式数据。
        </p>
        <p class="api-text">
            <strong>核心特性：</strong>
        </p>
        <ul class="api-warning-list">
            <li><strong>令牌认证机制：</strong>基于24位密钥的安全认证，保障数据访问安全</li>
            <li><strong>自动分页聚合：</strong>一次请求可获取全量数据（最多50000条）</li>
            <li><strong>智能关键词搜索：</strong>支持多字段模糊匹配，精准定位数据</li>
            <li><strong>跨域资源代理：</strong>图片/附件本地化代理，解决跨域问题</li>
            <li><strong>氚云真实文件名：</strong>直接获取氚云API返回的完整文件名，完全准确</li>
        </ul>
    </section>
    
    <section class="api-section">
        <h3 class="api-section-title">接口架构</h3>
        <p class="api-text">
            系统提供两种调用方式，满足不同场景需求：
        </p>
        
        <h4 class="api-info-title">方式一：统一接口（推荐）</h4>
        <p class="api-text">
            <strong>接口地址：</strong><code class="api-url">/api.php</code><br>
            <strong>认证方式：</strong>token_id + token_secret（令牌ID + 令牌密钥）<br>
            <strong>核心特点：</strong>自动分页聚合，可一次性获取全量数据（最多50000条）<br>
            <strong>适用场景：</strong>数据同步、全量导出、批量处理、第三方系统对接
        </p>
        
        <h4 class="api-info-title">方式二：标准接口</h4>
        <p class="api-text">
            <strong>接口地址：</strong><code class="api-url">/api/get_data.php</code><br>
            <strong>认证方式：</strong>schema_code + token（表单编码 + 令牌密钥）<br>
            <strong>核心特点：</strong>标准分页查询，每次最多返回500条，支持自定义分页大小<br>
            <strong>适用场景：</strong>分页浏览、实时查询、前端列表展示、按需加载
        </p>
    </section>
    
    <!-- 客户对接示例文件 -->
    <section class="api-section">
        <h3 class="api-section-title">客户对接示例文件</h3>
        
        <div class="api-info-box" style="background: #e8f5e9; border-left: 4px solid #4caf50; margin-bottom: 20px;">
            <h4 class="api-info-title" style="color: #2e7d32;">完整示例文件</h4>
            <p class="api-text">
                以下是完整的生产级示例代码，可直接复制使用或二次开发：
            </p>
        </div>
        
        <!-- 示例1: api.php -->
        <h4 class="api-example-title" style="margin-top: 30px;">示例一：统一数据接口（/get/api.php）</h4>
        <p class="api-text-sub"><strong>文件行数：</strong>190行 | <strong>核心功能：</strong>令牌认证、自动分页聚合、关键词搜索、全量数据获取</p>
        
        <?php
        $apiPhpPath = __DIR__ . '/../get/api.php';
        if (file_exists($apiPhpPath)) {
            $apiCode = file_get_contents($apiPhpPath);
            $apiCode = htmlspecialchars($apiCode);
            
            echo '<div class="code-container" style="margin-bottom: 30px;">';
            echo '<pre class="code-pre" style="max-height: 600px; overflow-y: auto;"><code>' . $apiCode . '</code></pre>';
            echo '<button onclick="copyCode(this)" class="code-copy-btn">复制代码</button>';
            echo '</div>';
        }
        ?>
        
        <!-- 示例2: image_proxy.php -->
        <h4 class="api-example-title" style="margin-top: 40px;">示例二：图片本地化代理（/get/image_proxy.php）</h4>
        <p class="api-text-sub"><strong>文件行数：</strong>68行 | <strong>核心功能：</strong>跨域代理、图片缓存、自动识别文件类型、URL解码、Content-Length传递</p>
        
        <?php
        $imageProxyPath = __DIR__ . '/../get/image_proxy.php';
        if (file_exists($imageProxyPath)) {
            $imageProxyCode = file_get_contents($imageProxyPath);
            $imageProxyCode = htmlspecialchars($imageProxyCode);
            
            echo '<div class="code-container">';
            echo '<pre class="code-pre" style="max-height: 600px; overflow-y: auto;"><code>' . $imageProxyCode . '</code></pre>';
            echo '<button onclick="copyCode(this)" class="code-copy-btn">复制代码</button>';
            echo '</div>';
        }
        ?>
        
        <!-- 示例3: attachment_proxy.php -->
        <h4 class="api-example-title" style="margin-top: 40px;">示例三：附件本地化代理（/get/attachment_proxy.php）</h4>
        <p class="api-text-sub"><strong>文件行数：</strong>90行 | <strong>核心功能：</strong>跨域代理、氚云真实文件名获取、RFC 5987编码支持、URL解码</p>
        
        <?php
        $attachmentProxyPath = __DIR__ . '/../get/attachment_proxy.php';
        if (file_exists($attachmentProxyPath)) {
            $attachmentProxyCode = file_get_contents($attachmentProxyPath);
            $attachmentProxyCode = htmlspecialchars($attachmentProxyCode);
            
            echo '<div class="code-container">';
            echo '<pre class="code-pre" style="max-height: 600px; overflow-y: auto;"><code>' . $attachmentProxyCode . '</code></pre>';
            echo '<button onclick="copyCode(this)" class="code-copy-btn">复制代码</button>';
            echo '</div>';
        }
        ?>
        
        <div class="api-warning-box" style="margin-top: 30px;">
            <h4 class="api-warning-title">客户对接说明</h4>
            <ul class="api-warning-list">
                <li><strong>生产级代码：</strong>以上三个文件均为完整的生产级实现，已在实际项目中验证</li>
                <li><strong>即用即配：</strong>文件包含详细的注释说明和使用示例，复制后只需填写配置即可使用</li>
                <li><strong>避免重复开发：</strong>建议客户直接复制这些文件进行系统对接，节省开发时间</li>
                <li><strong>配置要求：</strong>文件已脱敏处理，需填写实际的氚云AppKey、AppSecret、EngineCode等配置</li>
                <li><strong>功能亮点：</strong>附件代理支持氚云真实文件名获取，无需MIME类型推断，完全准确</li>
                <li><strong>客户端版本一致性：</strong>/get/ 目录下的文件与 /api/ 目录下的内部版本功能完全一致</li>
            </ul>
        </div>
    </section>
    
    
    <!-- 核心接口说明 -->
    <section class="api-section">
        <h3 class="api-section-title">核心接口：get_data.php</h3>
        
        <div class="api-info-box">
            <h4 class="api-info-title">接口地址</h4>
            <code class="api-url">
                <?php echo $domain; ?>/api/get_data.php
            </code>
            <p class="api-text" style="margin-top: 8px; color: #666; font-size: 13px;">
                <strong>说明：</strong>请将 <code>your-domain.com</code> 替换为您的实际域名
            </p>
            
            <h4 class="api-info-title">请求方式</h4>
            <p class="api-info-text">GET</p>
            
            <h4 class="api-info-title">请求参数</h4>
            <table class="api-table">
                <thead>
                    <tr>
                        <th>参数名</th>
                        <th>类型</th>
                        <th>必填</th>
                        <th>说明</th>
                        <th>示例值</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><code>schema_code</code></td>
                        <td>string</td>
                        <td><span class="required">是</span></td>
                        <td>表单编码（40位字符，D开头）</td>
                        <td><code>D284xxxxx...</code></td>
                    </tr>
                    <tr>
                        <td><code>token</code></td>
                        <td>string</td>
                        <td><span class="required">是</span></td>
                        <td>令牌密钥（24位字符）</td>
                        <td><code>Abc123XYZ...</code></td>
                    </tr>
                    <tr>
                        <td><code>page</code></td>
                        <td>integer</td>
                        <td>否</td>
                        <td>页码（从1开始，默认1）</td>
                        <td><code>1</code></td>
                    </tr>
                    <tr>
                        <td><code>size</code></td>
                        <td>integer</td>
                        <td>否</td>
                        <td>每页数量（范围：1-500，默认100）</td>
                        <td><code>100</code></td>
                    </tr>
                    <tr>
                        <td><code>keyword</code></td>
                        <td>string</td>
                        <td>否</td>
                        <td>搜索关键词（多字段模糊匹配）</td>
                        <td><code>关键词</code></td>
                    </tr>
                </tbody>
            </table>
            
    <!-- 返回数据格式 -->
    <section class="api-section">
        <h3 class="api-section-title">返回数据格式</h3>
        
        <h4 class="api-info-title">方式一：统一接口（/api.php）- 自动聚合</h4>
        <p class="api-text-sub">适用场景：数据同步、全量导出（一次性获取所有数据）</p>
        <pre class="api-json-pre"><code>{
  "success": true,            // 请求是否成功
  "data": [                   // 数据数组（已聚合所有分页）
    {
      "ObjectId": "...",      // 数据唯一ID
      "Name": "标题",         // 表单标题
      "SeqNo": "GYSJ-...",    // 流水号
      "F0000007": "[...]",    // 图片字段（JSON数组）
      "F0000036": "[...]",    // 附件字段（JSON数组）
      // ... 其他字段
    }
  ],
  "total": 1500,              // 总记录数
  "pages": 3                  // 总页数
}</code></pre>

        <h4 class="api-info-title">方式二：标准接口（/api/get_data.php）- 分页查询</h4>
        <p class="api-text-sub">适用场景：前端分页展示、按需加载</p>
        <pre class="api-json-pre"><code>{
  "success": true,            // 请求是否成功
  "data": [                   // 当前页数据数组
    {
      "ObjectId": "...",      // 数据唯一ID
      "Name": "标题",         // 表单标题
      "SeqNo": "GYSJ-...",    // 流水号
      "CreatedTime": "2025-10-30 10:00:00",  // 创建时间
      "ModifiedTime": "2025-10-30 15:30:00", // 修改时间
      "F0000007": "[{\"id\":\"uuid\"}]",    // 图片字段（JSON字符串）
      "F0000036": "[\"uuid1\",\"uuid2\"]",  // 附件字段（JSON字符串）
      // ... 其他自定义字段
    }
  ],
  "pagination": {
    "page": 1,                // 当前页码
    "size": 100,              // 每页数量
    "total": 100,             // 本页实际记录数
    "has_more": true          // 是否有下一页
  },
  "schema": {
    "code": "D284xxx...",     // 表单编码（40位）
    "name": "表单名称"         // 表单显示名称
  }
}</code></pre>

        <div class="api-warning-box" style="background: #fff3e0; border-left: 4px solid #ff9800;">
            <h4 class="api-warning-title" style="color: #e65100;">字段类型说明</h4>
            <ul class="api-warning-list">
                <li><strong>ObjectId：</strong>数据的唯一标识符（UUID格式）</li>
                <li><strong>Name：</strong>表单主标题字段（系统字段）</li>
                <li><strong>SeqNo：</strong>流水号字段（系统字段，格式如：GYSJ-20251030-00000716）</li>
                <li><strong>CreatedTime / ModifiedTime：</strong>创建时间 / 修改时间（格式：YYYY-MM-DD HH:mm:ss）</li>
                <li><strong>图片字段（如F0000007）：</strong>JSON字符串，格式 <code>[{"id":"uuid","name":"文件名"}]</code></li>
                <li><strong>附件字段（如F0000036）：</strong>JSON字符串，格式 <code>["uuid1","uuid2"]</code></li>
                <li><strong>自定义字段：</strong>以F开头+7位数字（如F0000001、F0000002等）</li>
            </ul>
        </div>
    </section>
    
    <!-- 图片代理接口 -->
    <section class="api-section">
        <h3 class="api-section-title">图片代理接口</h3>
        
        <div class="api-warning-box" style="background: #fff3e0; border-left: 4px solid #ff9800;">
            <h4 class="api-warning-title" style="color: #e65100;">客户对接示例文件</h4>
            <p class="api-text">
                完整的图片本地化代理实现请参考：<code style="color: #d84315; font-weight: bold;">/get/image_proxy.php</code><br>
                该文件提供了完整的跨域代理解决方案，可直接复制使用或二次开发。
            </p>
        </div>
        
        <div class="api-info-box">
            <h4 class="api-info-title">接口地址</h4>
            <code class="api-url">
                <?php echo $domain; ?>/api/image_proxy.php
            </code>
            <p class="api-text" style="margin-top: 8px; color: #666; font-size: 13px;">
                <strong>说明：</strong>请将 <code>your-domain.com</code> 替换为您的实际域名<br>
                <strong>本地化示例：</strong> <code>/get/image_proxy.php</code> (68行)
            </p>
            
            <h4 class="api-info-title">请求方式</h4>
            <p class="api-info-text">GET</p>
            
            <h4 class="api-info-title">功能说明</h4>
            <p class="api-text">
                用于代理获取氚云表单中的图片资源，解决跨域问题。<br>
                <strong>核心特点：</strong>
            </p>
            <ul class="api-warning-list" style="margin-top: 10px;">
                <li>自动处理氚云OAuth认证（无需前端配置）</li>
                <li>支持1天缓存（Cache-Control: 86400秒）</li>
                <li>智能识别Content-Type（JPEG/PNG/GIF/WebP等）</li>
                <li>自动传递Content-Length头（优化浏览器加载）</li>
                <li>支持URL解码（处理中文等特殊字符）</li>
            </ul>
            
            <h4 class="api-info-title">请求参数</h4>
            <table class="api-table">
                <thead>
                    <tr>
                        <th>参数名</th>
                        <th>类型</th>
                        <th>必填</th>
                        <th>说明</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><code>id</code></td>
                        <td>string</td>
                        <td><span class="required">是</span></td>
                        <td>图片/附件的UUID（从数据接口返回的图片字段中提取）</td>
                    </tr>
                </tbody>
            </table>
            
            <h4 class="api-info-title">返回内容</h4>
            <p class="api-text">
                <strong>返回格式：</strong>图片二进制数据流（Binary Stream）<br>
                <strong>使用方式：</strong>可直接用于 <code>&lt;img&gt;</code> 标签的 <code>src</code> 属性
            </p>
            
            <h4 class="api-info-title">响应头（Response Headers）</h4>
            <table class="api-table">
                <thead>
                    <tr>
                        <th>响应头</th>
                        <th>值</th>
                        <th>说明</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><code>Content-Type</code></td>
                        <td><code>image/jpeg</code><br><code>image/png</code><br><code>image/gif</code><br>等</td>
                        <td>根据实际文件类型自动识别</td>
                    </tr>
                    <tr>
                        <td><code>Cache-Control</code></td>
                        <td><code>public, max-age=86400</code></td>
                        <td>缓存1天（86400秒）</td>
                    </tr>
                    <tr>
                        <td><code>Content-Length</code></td>
                        <td><code>文件字节数</code></td>
                        <td>自动计算文件大小</td>
                    </tr>
                </tbody>
            </table>
        </div>
        
        <h4 class="api-example-title">使用示例</h4>
        
        <p class="api-text-sub">1. HTML 中显示图片</p>
        <pre class="api-example-pre"><code>&lt;img src="https://your-domain.com/api/image_proxy.php?id=12345678-1234-1234-1234-123456789abc" /&gt;</code></pre>
        
        <p class="api-text-sub">2. JavaScript 动态加载</p>
        <pre class="api-example-pre"><code>const imageId = '12345678-1234-1234-1234-123456789abc';
const imageUrl = `https://your-domain.com/api/image_proxy.php?id=${imageId}`;
img.src = imageUrl;</code></pre>
        
        <p class="api-text-sub">3. 从数据接口提取图片ID</p>
        <pre class="api-example-pre"><code>// 假设图片字段为 F0000007，返回格式：
const imageField = data.F0000007; // JSON字符串
const images = JSON.parse(imageField); // 解析为数组

// 提取第一张图片的ID
const firstImageId = images[0].id || images[0].refId;
const imageUrl = `https://your-domain.com/api/image_proxy.php?id=${firstImageId}`;</code></pre>
        
        <div class="api-warning-box">
            <h4 class="api-warning-title">重要提示</h4>
            <ul class="api-warning-list">
                <li><strong>图片ID格式：</strong>标准UUID格式（如：<code>12345678-1234-1234-1234-123456789abc</code>）</li>
                <li><strong>图片字段格式：</strong>JSON字符串 <code>[{"id":"uuid","name":"文件名.jpg"}]</code>，需解析后提取 <code>id</code> 或 <code>refId</code></li>
                <li><strong>支持的格式：</strong>所有氚云存储的图片类型（JPEG/PNG/GIF/BMP/WebP/SVG等）</li>
                <li><strong>认证方式：</strong>接口内部自动处理氚云OAuth认证，前端无需配置</li>
                <li><strong>版本一致性：</strong><code>/get/image_proxy.php</code> 与 <code>/api/image_proxy.php</code> 功能完全一致</li>
                <li><strong>性能优化：</strong>建议前端做好图片懒加载，避免一次性加载大量图片</li>
            </ul>
        </div>
    </section>
    
    <!-- 附件代理接口 -->
    <section class="api-section">
        <h3 class="api-section-title">附件代理接口</h3>
        
        <div class="api-warning-box" style="background: #e3f2fd; border-left: 4px solid #2196f3;">
            <h4 class="api-warning-title" style="color: #1565c0;">客户对接示例文件</h4>
            <p class="api-text">
                完整的附件本地化代理实现请参考：<code style="color: #0d47a1; font-weight: bold;">/get/attachment_proxy.php</code><br>
                该文件提供了氚云真实文件名获取 + 多种编码格式支持，可直接复制使用或二次开发。
            </p>
        </div>
        
        <div class="api-info-box">
            <h4 class="api-info-title">接口地址</h4>
            <code class="api-url">
                <?php echo $domain; ?>/api/attachment_proxy.php
            </code>
            <p class="api-text" style="margin-top: 8px; color: #666; font-size: 13px;">
                <strong>说明：</strong>请将 <code>your-domain.com</code> 替换为您的实际域名<br>
                <strong>本地化示例：</strong> <code>/get/attachment_proxy.php</code> (90行)
            </p>
            
            <h4 class="api-info-title">请求方式</h4>
            <p class="api-info-text">GET</p>
            
            <h4 class="api-info-title">功能说明</h4>
            <p class="api-text">
                用于代理下载氚云表单中的附件文件，解决跨域问题和文件名识别问题。<br>
                <strong>核心特点：</strong>
            </p>
            <ul class="api-warning-list" style="margin-top: 10px;">
                <li><strong>氚云真实文件名：</strong>直接从氚云API获取完整文件名（含扩展名）</li>
                <li><strong>多种编码支持：</strong>支持RFC 5987、标准引号、无引号等编码格式</li>
                <li><strong>自动OAuth认证：</strong>内部处理氚云认证，前端无需配置</li>
                <li><strong>缓存优化：</strong>支持1小时缓存（Cache-Control: 3600秒）</li>
                <li><strong>URL解码支持：</strong>正确处理中文文件名和特殊字符</li>
                <li><strong>BOM清理：</strong>自动移除响应头中的BOM字符</li>
            </ul>
            
            <h4 class="api-info-title">请求参数</h4>
            <table class="api-table">
                <thead>
                    <tr>
                        <th>参数名</th>
                        <th>类型</th>
                        <th>必填</th>
                        <th>说明</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><code>id</code></td>
                        <td>string</td>
                        <td><span class="required">是</span></td>
                        <td>附件的UUID（从数据接口返回的附件字段中提取）</td>
                    </tr>
                </tbody>
            </table>
            
            <h4 class="api-info-title">返回内容</h4>
            <p class="api-text">
                <strong>返回格式：</strong>附件二进制数据流（Binary Stream）<br>
                <strong>下载行为：</strong>浏览器自动触发下载（非预览）
            </p>
            
            <h4 class="api-info-title">响应头（Response Headers）</h4>
            <table class="api-table">
                <thead>
                    <tr>
                        <th>响应头</th>
                        <th>值示例</th>
                        <th>说明</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><code>Content-Type</code></td>
                        <td><code>application/postscript</code><br><code>image/vnd.adobe.photoshop</code><br><code>application/pdf</code><br>等150+种</td>
                        <td>根据MIME类型映射表自动识别</td>
                    </tr>
                    <tr>
                        <td><code>Content-Disposition</code></td>
                        <td><code>attachment; filename="创赛LOGO.ai"</code></td>
                        <td>氚云API返回的真实文件名（完整、准确）</td>
                    </tr>
                    <tr>
                        <td><code>Cache-Control</code></td>
                        <td><code>public, max-age=3600</code></td>
                        <td>缓存1小时（3600秒）</td>
                    </tr>
                    <tr>
                        <td><code>Content-Length</code></td>
                        <td><code>文件字节数</code></td>
                        <td>自动计算文件大小</td>
                    </tr>
                </tbody>
            </table>
        </div>
        
        <h4 class="api-example-title">使用示例</h4>
        
        <p class="api-text-sub">JavaScript 下载附件</p>
        <pre class="api-example-pre"><code>function downloadAttachment(attachmentId) {
    const link = document.createElement('a');
    link.href = `https://your-domain.com/api/attachment_proxy.php?id=${attachmentId}`;
    link.download = '';
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}

// 示例调用
downloadAttachment('6e28a68a-3bf3-45ba-a264-0154f4fbcaa4');
// 下载的文件名：创赛LOGO.ai（氚云原始文件名）</code></pre>
        
        <p class="api-text-sub">从数据接口提取附件ID</p>
        <pre class="api-example-pre"><code>// 假设附件字段为 F0000036，返回格式：
const attachmentField = data.F0000036; // JSON字符串：["uuid1", "uuid2"]
const attachments = JSON.parse(attachmentField); // 解析为数组

// 下载第一个附件
const firstAttachmentId = attachments[0];
downloadAttachment(firstAttachmentId);</code></pre>
        
        <div class="api-warning-box">
            <h4 class="api-warning-title">重要提示</h4>
            <ul class="api-warning-list">
                <li><strong>附件ID格式：</strong>标准UUID格式（如：<code>6e28a68a-3bf3-45ba-a264-0154f4fbcaa4</code>）</li>
                <li><strong>附件字段格式：</strong>JSON字符串 <code>["uuid1","uuid2"]</code>（简单数组，只包含ID）</li>
                <li><strong>氚云真实文件名：</strong>系统自动从氚云API获取完整文件名（含扩展名）<br>
                    示例：下载文件名直接为 <code>创赛LOGO.ai</code>、<code>设计稿.psd</code> 等氚云原始文件名</li>
                <li><strong>编码格式支持：</strong>自动处理RFC 5987、URL编码、标准引号等多种格式</li>
                <li><strong>认证方式：</strong>接口内部自动处理氚云OAuth认证，前端无需配置AppKey/AppSecret</li>
                <li><strong>版本一致性：</strong><code>/get/attachment_proxy.php</code> 与 <code>/api/attachment_proxy.php</code> 功能完全一致（90行）</li>
            </ul>
        </div>
    </section>
    
    <section class="api-section">
        <h3 class="api-section-title">令牌认证说明</h3>
        
        <div class="api-warning-box">
            <h4 class="api-warning-title">如何获取令牌？</h4>
            <ol class="api-warning-list">
                <li><strong>步骤1：</strong>登录系统后台，进入 <strong>「表单管理」</strong> 页面</li>
                <li><strong>步骤2：</strong>在表单列表中找到需要对接的表单</li>
                <li><strong>步骤3：</strong>点击表单右侧的 <strong>「令牌」</strong> 按钮，打开令牌管理对话框</li>
                <li><strong>步骤4：</strong>复制 <strong>令牌ID</strong>（9位）和 <strong>令牌密钥</strong>（24位）</li>
                <li><strong>步骤5：</strong>将令牌信息配置到客户端的 <code>api.php</code> 文件中的 <code>$tokenMapping</code> 数组</li>
            </ol>
            
            <h4 class="api-warning-title-sub">令牌格式规范</h4>
            <table class="api-table" style="margin-top: 10px;">
                <thead>
                    <tr>
                        <th>参数</th>
                        <th>长度</th>
                        <th>字符组成</th>
                        <th>示例</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td><strong>令牌ID</strong></td>
                        <td>9位</td>
                        <td>大小写字母 + 数字</td>
                        <td><code>Abc12XyZ9</code></td>
                    </tr>
                    <tr>
                        <td><strong>令牌密钥</strong></td>
                        <td>24位</td>
                        <td>大小写字母 + 数字</td>
                        <td><code>Abc123XYZ456def789GH...</code></td>
                    </tr>
                </tbody>
            </table>
            
            <div class="api-warning-box" style="background: #ffebee; border-left: 4px solid #f44336; margin-top: 15px;">
                <h4 class="api-warning-title" style="color: #c62828;">🔒 安全提示</h4>
                <ul class="api-warning-list">
                    <li>令牌密钥等同于账号密码，请妥善保管，避免泄露</li>
                    <li>不要在前端代码或公开仓库中直接暴露令牌信息</li>
                    <li>建议定期更换令牌密钥，提高安全性</li>
                    <li>如发现令牌泄露，请立即在系统中重新生成新令牌</li>
                </ul>
            </div>
        </div>
    </section>

    <!-- 使用示例 -->
    <section class="api-section">
        <h3 class="api-section-title">使用示例</h3>
        
        <h4 class="api-example-title">方式一：统一接口（/api.php）- 自动分页聚合</h4>
        
        <p class="api-text-sub">1. 获取全量数据（推荐）</p>
        <pre class="api-example-pre"><code>GET https://your-domain.com/api.php?token_id=YOUR_TOKEN_ID&token_secret=YOUR_TOKEN_SECRET</code></pre>
        <p class="api-text" style="margin-top: 5px; color: #666;">
            说明：自动分页聚合，一次性返回所有数据（最多50000条）
        </p>
        
        <p class="api-text-sub">2. 获取指定页数据</p>
        <pre class="api-example-pre"><code>GET https://your-domain.com/api.php?token_id=YOUR_TOKEN_ID&token_secret=YOUR_TOKEN_SECRET&page=2&size=200</code></pre>
        <p class="api-text" style="margin-top: 5px; color: #666;">
            说明：获取第2页数据，每页200条（手动分页模式）
        </p>
        
        <p class="api-text-sub">3. 关键词搜索（全量）</p>
        <pre class="api-example-pre"><code>GET https://your-domain.com/api.php?token_id=YOUR_TOKEN_ID&token_secret=YOUR_TOKEN_SECRET&keyword=关键词</code></pre>
        <p class="api-text" style="margin-top: 5px; color: #666;">
            说明：搜索包含关键词的所有记录，自动聚合所有匹配数据
        </p>
        
        <h4 class="api-example-title">方式二：标准接口（/api/get_data.php）- 分页查询</h4>
        
        <p class="api-text-sub">4. 标准分页查询</p>
        <pre class="api-example-pre"><code>GET https://your-domain.com/api/get_data.php?schema_code=YOUR_SCHEMA_CODE&token=YOUR_TOKEN_SECRET&page=1&size=100</code></pre>
        <p class="api-text" style="margin-top: 5px; color: #666;">
            说明：获取第1页数据，每页100条（标准分页模式）
        </p>
        
        <p class="api-text-sub">5. 关键词搜索（分页）</p>
        <pre class="api-example-pre"><code>GET https://your-domain.com/api/get_data.php?schema_code=YOUR_SCHEMA_CODE&token=YOUR_TOKEN_SECRET&keyword=关键词&page=1&size=100</code></pre>
        <p class="api-text" style="margin-top: 5px; color: #666;">
            说明：搜索包含关键词的记录，返回第1页，每页100条
        </p>
        
        <div class="api-warning-box" style="background: #e8f5e9; border-left: 4px solid #4caf50; margin-top: 20px;">
            <h4 class="api-warning-title" style="color: #2e7d32;">💡 接口选择建议</h4>
            <ul class="api-warning-list">
                <li><strong>方式一（/api.php）：</strong>适合数据同步、全量导出、第三方系统对接，一次性获取所有数据</li>
                <li><strong>方式二（/api/get_data.php）：</strong>适合前端列表展示、分页浏览、实时查询，按需加载数据</li>
                <li><strong>性能对比：</strong>方式一会自动调用多次分页接口聚合数据，适合后台任务；方式二单次请求快速响应，适合前端交互</li>
            </ul>
        </div>
    </section>
    
    <!-- 错误码说明 -->
    <section class="api-section">
        <h3 class="api-section-title">错误码说明</h3>
        
        <table class="api-error-table">
            <thead>
                <tr>
                    <th>错误信息</th>
                    <th>原因</th>
                    <th>解决方法</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td><code>缺少token_id或token_secret</code></td>
                    <td>未提供令牌参数</td>
                    <td>检查URL参数是否完整</td>
                </tr>
                <tr>
                    <td><code>无效的token_id</code></td>
                    <td>令牌ID不存在</td>
                    <td>检查令牌ID是否正确配置</td>
                </tr>
                <tr>
                    <td><code>Token验证失败</code></td>
                    <td>令牌密钥不匹配</td>
                    <td>检查令牌密钥是否正确</td>
                </tr>
                <tr>
                    <td><code>缺少schema_code参数</code></td>
                    <td>未提供表单编码</td>
                    <td>检查请求参数</td>
                </tr>
                <tr>
                    <td><code>Token验证失败或表单不存在</code></td>
                    <td>表单未配置或token不匹配</td>
                    <td>在系统中配置表单并生成令牌</td>
                </tr>
                <tr>
                    <td><code>数据获取失败</code></td>
                    <td>氚云API调用异常</td>
                    <td>检查基础配置和网络连接</td>
                </tr>
            </tbody>
        </table>
    </section>
    
    
</div>

<script>
function copyCode(button) {
    // 获取按钮的父元素（code-container）
    const container = button.parentElement;
    const codeElement = container.querySelector('code');
    
    if (!codeElement) {
        Toast.error('未找到代码内容');
        return;
    }
    
    // 创建临时文本区域
    const textarea = document.createElement('textarea');
    textarea.value = codeElement.textContent;
    textarea.style.position = 'fixed';
    textarea.style.opacity = '0';
    document.body.appendChild(textarea);
    textarea.select();
    
    try {
        document.execCommand('copy');
        Toast.success('代码已复制到剪贴板');
        
        // 按钮反馈
        const originalText = button.textContent;
        button.textContent = '✓ 已复制';
        button.style.background = '#4caf50';
        
        setTimeout(() => {
            button.textContent = originalText;
            button.style.background = '';
        }, 2000);
    } catch (err) {
        Toast.error('复制失败，请手动复制');
    }
    
    document.body.removeChild(textarea);
}
</script>